package cn.coco.jf.fw.admin.config;

import com.jfinal.config.Routes;
import com.jfinal.plugin.activerecord.tx.TxByMethodRegex;

import cn.coco.jf.fw.admin.sys.controller.guide.GuideController;
import cn.coco.jf.fw.admin.sys.controller.index.IndexController;
import cn.coco.jf.fw.admin.sys.controller.ptn.PtnController;
import cn.coco.jf.fw.admin.sys.controller.role.RoleController;
import cn.coco.jf.fw.admin.sys.controller.user.UserController;

public class AdminRoutes extends Routes{

    @Override
    public void config() {
        setBaseViewPath("/WEB-INF/tpl");

    }
    
    
    // TODO 为什么需要区分前后
    public void configBefore(){
        setBaseViewPath("/WEB-INF/tpl"); // TODO 是否多余
        // ======系统======
        add("/", IndexController.class);
        add("/sys/user", UserController.class, "sys/user");
        add("/sys/guide", GuideController.class, "sys/guide");
        add("/sys/role", RoleController.class, "sys/role");
        add("/sys/ptn", PtnController.class, "sys/ptn");
    }

    public void configAfter(){
    	
        addInterceptor(new AdminInterceptor());
        
        // 注意事务拦截器的先后顺序 TODO,理由？=>AdminInterceptor在发生异常时并没有抛出异常，导致后续Interceptor无法捕获
        addInterceptor(new TxByMethodRegex("(do.*save.*|do.*add.*|do.*upd.*|do.*insert.*|do.*del.*|doTx.*)", false));
    }
    
    

}
